Instructies For...Next

   

Met instructies For...Next kunt u een blok met instructies een gegeven aantal keer herhalen. Lussen For maken gebruik van de variabele Counter, waarvan de waarde bij elke herhaling van de lus wordt verlaagd of verhoogd.

De volgende procedure zorgt ervoor dat de computer 50 pieptonen maakt. In de instructie For worden de Countervariabele x en de beginwaarde en eindwaarde hiervan gedefinieerd. De instructie Next verhoogt de variabele Counter met 1.

Sub Beeps()
    For x = 1 To 50
        Beep
    Next x
End Sub

Met behulp van het sleutelwoord Step kunt u de variabele Counter verhogen of verlagen met een door u opgegeven waarde. In het volgende voorbeeld wordt de Countervariabele j bij elke herhaling van de lus met 2 verhoogd. Als de lus is afgelopen, geeft total de som van 2, 4, 6, 8 en 10 weer.

Sub TwosTotal()
    For j = 2 To 10 Step 2
        total = total + j
    Next j
    MsgBox "Het totaal is " & total
End Sub

Als u een negatieve waarde voor Step gebruikt, kunt u de variabele Counter verlagen. Om de variabele Counter te verlagen moet u een eindwaarde opgeven die lager is dan de beginwaarde. In het volgende voorbeeld wordt de Countervariabele MyNum bij elke herhaling van de lus met 2 verlaagd. Als de lus is afgelopen, geeft total de som van 16, 14, 12, 10, 8, 6, 4 en 2 weer.

Sub NewTotal()
    For MyNum = 16 To 2 Step -2
        total = total + MyNum
    Next MyNum
    MsgBox "Het totaal is " & total
End Sub

Opmerking Het is niet noodzakelijk om achter de instructie Next de naam van de variabele Counter op te nemen. Deze naam is hier omwille van de leesbaarheid opgenomen.

Met de instructie Exit For kunt u een instructie For...Next verlaten voordat de Counter de eindwaarde bereikt. U kunt deze instructie gebruiken als er een fout optreedt. De instructie Exit For bevindt zich in het instructieblok True van een instructie If...Then...Else of Select Case die op het opsporen van fouten is ingesteld. Als de fout niet optreedt, geeft de instructie If...Then...Else als resultaat False weer en wordt de lus gewoon verder uitgevoerd.